<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                template="../templates/principal.xhtml">

    <ui:define name="head">
        <style type="text/css">
            .ui-datatable .ui-datatable-header {
                text-align:right;
            }

            .actions td {
                border: 0px none !important;
                padding: 2px !important;
            }
        </style>
    </ui:define>

    <ui:define name="content" id="content">
        <h1 class="title ui-widget-header ui-corner-all">Bem Vindo ao Cadastro de Procurador</h1>

        <h:form id="frmProcurador" prependId="false">


            <p:dataTable id="tabProcurador" widgetVar="wtabProcurador" var="procurador" value="#{procuradorBean.lazyModel}" 
                         paginator="true" rows="10" lazy="true" emptyMessage="Nenhum Registro Retornado ..."
                         selection="#{procuradorBean.selectedProcurador}" rowIndexVar="rowIndexProcurador" selectionMode="single"
                         onRowSelectComplete="procuradorDialog.show()" onRowSelectUpdate="panel, display, tabAnalista"
                         rowSelectListener="#{procuradorBean.onRowSelectNavigate}">

                <f:facet name="header">
                    <div style="text-align: center">
                        Selecione uma linha e clique para Manutenção
                    </div>
                </f:facet>

                <p:column headerText="Nome" sortBy="#{procurador.nomProcurador}" filterBy="#{procurador.nomProcurador}" style="width:500px;">
                    <h:outputText value="#{procurador.nomProcurador}" />
                </p:column>

                <p:column headerText="E-Mail" sortBy="#{procurador.dscEmailProcurador}" filterBy="#{procurador.dscEmailProcurador}" style="width:500px;">
                    <h:outputText value="#{procurador.dscEmailProcurador}" />
                </p:column>

                <p:column headerText="Telefone" sortBy="#{procurador.numTelefone1}" filterBy="#{procurador.numTelefone1}" 
                          style="width:200px;">
                    <h:outputText value="#{procurador.numTelefone1}">
                        <f:converter converterId="mascaraConverter" />
                        <f:attribute name="tipo" value="T" />
                    </h:outputText>
                </p:column>

            </p:dataTable>

            <p:dialog id="dialog" header="Detalhes Procurador" widgetVar="procuradorDialog" resizable="true"
                      width="800" showEffect="explode" hideEffect="explode">
                <p:panel id="panel">
                    <h:panelGrid id="display" columns="2" style="margin-bottom:50px" cellpadding="5">
                        <h:outputText value="Nome:" />
                        <p:inputText id="nomProcurador" value="#{procuradorBean.selectedProcurador.nomProcurador}" required="true" style="width:400px; font-weight:bold;" />

                        <h:outputText value="Nome Contato:" />
                        <p:inputText id="nomContato" value="#{procuradorBean.selectedProcurador.nomContato}" style="width:400px; font-weight:bold;" />

                        <h:outputText value="E-Mail:" />
                        <p:inputText id="dscEmail" value="#{procuradorBean.selectedProcurador.dscEmailProcurador}" style="width:400px; font-weight:bold;" />

                        <h:outputText value="Telefone Principal:" style="width:200px;"/>
                        <h:panelGrid columns="3">
                            <p:inputMask id="numTel1" value="#{procuradorBean.selectedProcurador.numTelefone1}" mask="(99) 9999-9999" style="font-weight:bold;" />
                            <h:outputText value="Tipo:" />
                            <h:selectOneMenu value="#{procuradorBean.selectedProcurador.tipTelefone1}">
                                <f:selectItem itemLabel="Comercial" itemValue="C" />
                                <f:selectItem itemLabel="Celular" itemValue="L" />
                                <f:selectItem itemLabel="Residencial" itemValue="R" />
                                <f:selectItem itemLabel="FAX" itemValue="F" />
                                <f:selectItem itemLabel="Outro" itemValue="O" />
                            </h:selectOneMenu>
                        </h:panelGrid>

                        <h:outputText value="Segundo Telefone:" style="width:200px;"/>
                        <h:panelGrid columns="3">
                            <p:inputMask id="numTel2" value="#{procuradorBean.selectedProcurador.numTelefone2}" mask="(99) 9999-9999" style="font-weight:bold;" />
                            <h:outputText value="Tipo:" />
                            <h:selectOneMenu value="#{procuradorBean.selectedProcurador.tipTelefone2}">
                                <f:selectItem itemLabel="Comercial" itemValue="C" />
                                <f:selectItem itemLabel="Celular" itemValue="L" />
                                <f:selectItem itemLabel="Residencial" itemValue="R" />
                                <f:selectItem itemLabel="FAX" itemValue="F" />
                                <f:selectItem itemLabel="Outro" itemValue="O" />
                            </h:selectOneMenu>
                        </h:panelGrid>

                        <h:outputText value="Terceiro Telefone:" style="width:200px;"/>
                        <h:panelGrid columns="3">
                            <p:inputMask id="numTel3" value="#{procuradorBean.selectedProcurador.numTelefone3}" mask="(99) 9999-9999" style="font-weight:bold;" />
                            <h:outputText value="Tipo:" />
                            <h:selectOneMenu value="#{procuradorBean.selectedProcurador.tipTelefone3}">
                                <f:selectItem itemLabel="Comercial" itemValue="C" />
                                <f:selectItem itemLabel="Celular" itemValue="L" />
                                <f:selectItem itemLabel="Residencial" itemValue="R" />
                                <f:selectItem itemLabel="FAX" itemValue="F" />
                                <f:selectItem itemLabel="Outro" itemValue="O" />
                            </h:selectOneMenu>
                        </h:panelGrid>
                        <f:facet name="footer" rendered="false">
                            <p:dataTable id="tabAnalista" widgetVar="wtabAnalista" var="analista" value="#{procuradorBean.lazyProcuradorAcionista}" 
                                         paginator="true" rows="2" emptyMessage="Nenhum Registro Retornado ..."
                                         rowIndexVar="rowAcionista" rendered="false">

                                <f:facet name="header">
                                    <div style="text-align: center">
                                        Clique para Pesquisa de Acionista
                                        <p:commandButton update="tabAnalista" oncomplete="acionistaDialog.show()" image="ui-icon ui-icon-search" title="Incluir">
                                            <f:setPropertyActionListener value="#{analista}" target="#{procuradorBean.selectedProcuradorAcionista}" />
                                        </p:commandButton>
                                    </div>
                                </f:facet>

                                <p:column headerText="Acionista" sortBy="#{analista.nomCliente}" style="width:500px;">
                                    <h:outputText value="#{analista.nomCliente}" />
                                </p:column>

                                <p:column style="width:50px">
                                    <h:panelGrid columns="3" styleClass="actions" cellpadding="2">
                                        <p:commandButton update="tabAnalista" oncomplete="confirmationAcionista.show()" image="ui-icon ui-icon-close" title="Excluir">
                                            <f:setPropertyActionListener value="#{analista}" target="#{procuradorBean.selectedProcuradorAcionista}" />
                                        </p:commandButton>
                                    </h:panelGrid>
                                </p:column>
                            </p:dataTable>
                        </f:facet>
                    </h:panelGrid>
                    <p:commandButton value="Novo" update="panel,display" actionListener="#{procuradorBean.preparaInserir}" oncomplete="procuradorDialog.show()" 
                                     image="ui-icon ui-icon-folder-open" title="Clique para Inserir um Novo Procurador" />

                    <p:commandButton value="Inserir" update="messages,panel,tabProcurador,display" rendered="#{!procuradorBean.disable}" 
                                     actionListener="#{procuradorBean.inserir}" oncomplete="procuradorDialog.hide()" />

                    <p:commandButton value="Alterar" update="messages,panel,tabProcurador,display" rendered="#{procuradorBean.disable}" 
                                     actionListener="#{procuradorBean.alterar}" oncomplete="procuradorDialog.hide()" />

                    <p:commandButton id="btExcluir" value="Excluir" onclick="confirmation.show()" type="button" rendered="#{procuradorBean.disable}" />
                </p:panel>
            </p:dialog>

            <p:confirmDialog message="Confirma a Exclusão desse Procurador?"
                             showEffect="bounce" hideEffect="explode"
                             header="Exclusão do Procurador" severity="alert" widgetVar="confirmation">

                <p:commandButton value="Sim" update="messages,panel,tabProcurador,display" oncomplete="confirmation.hide(),procuradorDialog.hide()"
                                 actionListener="#{procuradorBean.excluir}" />
                <p:commandButton value="Não" onclick="confirmation.hide()" type="button" />

            </p:confirmDialog>

            <p:confirmDialog message="Confirma a Exclusão desse Acionista?" width="500"
                             showEffect="explode" hideEffect="explode"
                             header="Confirm" severity="alert" widgetVar="confirmationAcionista">

                <p:commandButton value="Sim" update="messages,panel,tabAnalista" actionListener="#{procuradorBean.deleteAcionista}" 
                                 oncomplete="confirmationAcionista.hide()"/>
                <p:commandButton value="Não" onclick="confirmationAcionista.hide()" type="button" />

            </p:confirmDialog>

            <!-- PESQUISA CLIENTES -->
            <p:dialog id="dialogCliente" header="Pesquisa Acionistas" widgetVar="acionistaDialog" resizable="true"
                      width="800" showEffect="explode" hideEffect="explode" position="'right',30">

                <p:dataTable id="tabCliente" widgetVar="wtabCliente" var="cliente" value="#{clienteBean.lazyModel}" 
                             paginator="true" rows="5" lazy="true"
                             selection="#{clienteBean.selectedCliente}" selectionMode="single"
                             onRowSelectUpdate="panel,display,tabAnalista" onRowSelectComplete="acionistaDialog.hide()"
                             rowSelectListener="#{procuradorBean.onRowSelectNavigateCliente}">

                    <f:facet name="header">
                        <div style="text-align: center">
                            Clique em uma linha para Seleção
                        </div>
                    </f:facet>

                    <p:column headerText="Razão Social / Nome" sortBy="#{cliente.nomCliente}" filterBy="#{cliente.nomCliente}">
                        <h:outputText value="#{cliente.nomCliente}" />
                    </p:column>

                    <p:column headerText="C.N.P.J. / C.P.F." sortBy="#{cliente.numCpf}" filterBy="#{cliente.numCpf}" style="text-align: center;">
                        <h:outputText value="#{cliente.numCpf}" />
                    </p:column>

                    <p:column headerText="Tipo" sortBy="#{cliente.tipCliente}" filterBy="#{cliente.tipCliente}"  
                              filterOptions="#{clienteBean.tipClienteOptions}" filterMatchMode="exact">
                        <h:outputText value="#{cliente.dscTipo}" />
                    </p:column>

                    <p:column headerText="Nacionalidade" sortBy="#{cliente.idNacionalidade.dscNacionalidade}" filterBy="#{cliente.idNacionalidade.dscNacionalidade}">
                        <h:outputText value="#{cliente.idNacionalidade.dscNacionalidade}" />
                    </p:column>
                </p:dataTable>
            </p:dialog>
        </h:form>
    </ui:define>
</ui:composition>